package com.yan.design.java8.k6;

import org.springframework.format.annotation.DateTimeFormat;

import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

/**
 * 6 java8时间
 *
 * @author shengren.yan
 * @create 2022-08-17
 */
public class Time1 {

    public static void main(String[] args) {
        // LocalDate LocalTime LocalDateTime

        // 当前时间
        LocalDateTime now = LocalDateTime.now();
        // 设置 时间为 2022年10月1日11点20分10秒
        LocalDateTime.of(2022,10,1,11,20,10);
        // now.plusYears(2).minusYears(1);  加 减
        // now.withDayOfYear(365) // 年终的第365天 是几月几号
        // 工具类 - TemporalAdjusters
        now.with(TemporalAdjusters.firstDayOfMonth());       // 下个月的第一天 是哪天， 工具类里有很多
        now.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));  // 下个周日是哪天， 工具类里有很多

        // 时区 ： 亚洲上海的当前时间
        LocalDateTime now1 = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));

    }


    // 格式化
    private void test1(){
        // LocalDateTime 转 String
        DateTimeFormatter drf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // S 毫秒 E 星期几
        LocalDateTime now = LocalDateTime.now();
        String format = drf.format(now);

        // String 转 LocalDateTime
        LocalDateTime parse = LocalDateTime.parse(format, drf);

    }

}
